/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param array int整型一维数组 
 * @return int整型一维数组
 */
 function FindNumsAppearOnce( array ) {
  // write code here
  var res = 0
  for(let i of array){
    res = res ^ i
  }
  var div = 1
  while((div & res) === 0){
    div = div << 1
  }
  // 出来的时候div这个位数第一个就是 两个mn异或的第一个1 
  // 然后按照这个1 来对array数字中的数字进行区分 在这一位是1的一个数组 在这一位数是0 的一个数组
  var m = 0
  var n = 0
  for(let i of array){
    if(div & i){
      // 如果div 和 i 相与 不是0 说明i在这一位是1
      m = m ^ i
    }else{
      n = n ^ i
    }
  }
  return [m,n].sort(function(a,b){
    return a-b
  })
}
module.exports = {
  FindNumsAppearOnce : FindNumsAppearOnce
};